home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-06-13 | 1.4 KB | 70 lines | [TEXT/EDIT] |
- -- Part of SmallEiffel -- Read DISCLAIMER file -- Copyright (C)
- -- Dominique COLNET and Suzanne COLLIN -- colnet@loria.fr
- --
- class TEST_ARRAY_TO_EXTERNAL
-
- creation make
-
- feature
-
- -- *** t_double: ARRAY[DOUBLE];
- t_boolean: ARRAY[BOOLEAN];
- t_integer: ARRAY[INTEGER];
- t_any: ARRAY[CAT];
-
- make is
- local
- cat: CAT;
- do
- t_boolean := <<true, false>>;
- is_true(boolean(t_boolean.to_external));
-
- t_integer := <<4,5,6>>;
- is_true(t_integer.first = integer(t_integer.to_external));
-
- -- *** t_double := <<(3.0).to_double>>;
- -- *** is_true(double(t_double.to_external) = (3.0).to_double);
-
- !!cat;
- t_any := <<cat,cat>>;
- is_true(any(t_any.to_external) = cat);
- end;
-
- feature {NONE}
-
- boolean(p: POINTER): BOOLEAN is
- do
- Result := integer(p).to_boolean;
- end;
-
- integer(p: POINTER): INTEGER is
- do
- c_inline_c("R=*((int *)a1);");
- end;
-
- double(p: POINTER): DOUBLE is
- do
- c_inline_c("R=*((double *)a1);");
- end;
-
- any(p: POINTER): ANY is
- do
- c_inline_c("R=*((void**)a1);");
- end;
-
- is_true(b: BOOLEAN) is
- do
- cpt := cpt + 1;
- if not b then
- std_output.put_string("TEST_ARRAY_TO_EXTERNAL: ERROR Test # ");
- std_output.put_integer(cpt);
- std_output.put_string("%N");
- else
- -- std_output.put_string("Yes%N");
- end;
- end;
-
- cpt: INTEGER;
-
- end -- TEST_ARRAY_TO_EXTERNAL
-